home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / libs / type1beta5.lha / type1 / HISTORY next >
Text File  |  1995-01-10  |  11KB  |  341 lines

  1.  
  2. HISTORY
  3. -------
  4. ###
  5. ### 9/15/93
  6. ###
  7. type1.library:
  8.  
  9.  No longer using the amishinfo.c code, as it was not relevant to the
  10.  Amiga's usage of the library.  Code size dropped to about 70k.
  11.  
  12.  I have rewritten enough of the top layers so that characters are
  13.  rendered only on request (and only if not already rendered), as
  14.  opposed to having all the characters rendered before the first
  15.  character is requested...
  16.  
  17. ###
  18. ### 9/26/93
  19. ###
  20. T1Manager:
  21.  
  22.  Now creates .font file and creates font directory
  23.  
  24.  There is now a page area below the install button. Currently,
  25.  there 2 pages: Preview and Options.  There is a cycle/popup gadget
  26.  to switch between the two.  Both pages currently only contain a
  27.  built-in resizable image, just for testing purposes...
  28.  
  29. type1.library:
  30.  
  31.  Fixed enforcer hits: MyGetGlyphCode could return NULL glyph (default
  32.  glyph) and rc == successful.  Was getting enforcer hits referencing
  33.  glyphs->glyphmap, of course...
  34.  
  35. ###
  36. ### 10/1/93
  37. ###
  38. T1Manager:
  39.  
  40.  Added error checking to the T1_InstallFont routine - rewritten to be much
  41.  more sane.  Still need to be able to communicate the type of error to the
  42.  user...   But rewriting allows easy fix of font file generation...
  43.  
  44. type1.library
  45.  
  46.  Modified OtagObtainInfoA a bit to fix a serious problem wrt return code,
  47.  which became important because T1Manager now pays attention to it...
  48.  
  49. ###
  50. ### 10/2/93
  51. ###
  52. T1Manager:
  53.  
  54.  Added Remove button gadget, which de-installs the currently selected font.
  55.  Implementing this involved some structural changes in t1manager_backend.c.
  56.  
  57. ###
  58. ### 10/17/93
  59. ###
  60. T1Manager:
  61.  
  62.  Double-clicking on a font in the listview now causes a preview to be displayed
  63.  in the preview box.  This is done by blitting into the window's rastport, after
  64.  finding the position of the preview box.  Much still needs to be done, however.
  65.  The problems are that:
  66.    a) the SPACE character doesn't work!
  67.    b) I need to do better y-axis bounds checking in the preview display.
  68.    c) The size of the preview is currently fixed!
  69.    d) The preview doesn't clear itself, and I need to handle refresh on resize, etc!
  70.    e) I need to make sure the preview page is active before doing going any further
  71.    f) Error checking when I AllocRaster()
  72.  
  73. type1.library:
  74.  
  75.  In amisht1funcs, I was only setting fontencoding if it was NULL.  Now, every time a
  76.  font is opened, it is forcibly set to ISOLatin1Encoding.
  77.  
  78. ###
  79. ### 10/18/93
  80. ###
  81. type1.library:
  82.  
  83.  In amisht1funcs, I pretty much rewrote MyType1Glyphs.   It now handles spaces, and is
  84.  generally cleaner (and perhaps faster).  Note that a space character is returned with
  85.  a NULL bitmap pointer, but with correct position information (X0,Y0, X1,Y1), etc.
  86.  I am observing that with Muriel and ParkHaven, the spaces seem to be too big.  It might
  87.  be the case that the space is defined that way for these fonts, though... in fact, it
  88.  does seem to be that way...
  89.  
  90. ###
  91. ### 10/19/93
  92. ###
  93. T1Manager:
  94.  
  95.  T1Manager was NOT creating .otag files correctly.  For otags that were not indirect, it
  96.  was writing uninitialized data.  I discovered this because spytype1 showed that
  97.  OT_SpecCount was always 0, and indeed, the otag file said it was 0.  This has also led
  98.  to the observation that type1.library is returning IsFixed FALSE for Courier!?!  I still
  99.  need to look into this.
  100.  
  101. type1.library:
  102.  
  103.  Solved the IsFixed problem.  The problem was that type1.library was setting IsFixed to
  104.  1L (a 32bit TRUE), but T1Manager was only considering only the top 16 bits of it
  105.  (16 bit BOOLEAN), and so thought it was false.  The solution was to make QueryFontLib
  106.  return Booleans as 16bit booleans (unsigned shorts).
  107.  
  108.  While trying Courier in a shell, I observed a MAJOR problem.  All the characters are
  109.  flushed left!  In hindsight, it is obvious that I need to account for the
  110.  left Side Bearing by adding to the XOrigin fields...  maybe.
  111.  
  112.  It also seems that many of the characters touch each other... This is noticable with
  113.  Courier more than with Dragonwick and friends...  This must also be related to the
  114.  left and right Side Bearing problem.
  115.  
  116. ###
  117. ### 10/20/93
  118. ###
  119. type1.library:
  120.  
  121.  Solved the flushed left problem (the left SideBearing problem).  The solution was to
  122.  subtract the correct leftsidebearing from the origins (X0, X1, and XOrigin). Things
  123.  look much better now...
  124.  
  125.  The 'touch each other' problem does not happen with the way *I* render the characters
  126.  (which is pretty much copied from the 'strikefont.c' sample code for bullet.library
  127.  developer tools).  It does happen with diskfont.library, though.
  128.  
  129. T1Manager:
  130.  
  131.  I updated the font rendering code to account for the BlackLeft and BlackTop fields
  132.  of the GlyphMap structure.  Of course, I don't use these fields, but I did this to be
  133.  more 'correct'.
  134.  
  135.  T1Manager now saves the familyname in the .otag file.
  136.  
  137. ###
  138. ### 11/28/93
  139. ###
  140. type1.library:
  141.  
  142.  Compiled with SAS C 6.50.
  143.  
  144.  PROBLEM: Get an annoying linker problem (undefined symbol __XCEXIT)
  145.  
  146.  Now linked with pools.lib, so I don't think there are any more 3.0 dependencies.
  147.  
  148.  Now using ieeedoubbas.library instead of m68881 code, so the code can now be made
  149.  to work on any Amiga.  It CAN be made to work, provided I can keep the library
  150.  from crashing on the first call to the IEEEdoubbas library...
  151.  
  152.  Rewrote the makefiles.  smakefile uses Chris' library code; smakefile2 uses the
  153.  SAS library code.
  154.  
  155.  Modified much of t1objects.c - mostly, I #ifdef'ed out many of the functions, and
  156.  commented out several lines - the functions were involved in error handling.
  157.  These functions need much more work...
  158.  
  159.  Need to be able to set the OT_SpaceWidth tag in the otag file.  I don't currently
  160.  have much of an idea on how to do this correctly, though.  I noticed the problem
  161.  because occasionally BltTemplate would choke on blitting 0 size templates, which
  162.  is what the SPACE character is.  My rendering routine in T1Manager now hacks
  163.  around the problem, but still...
  164.  
  165.  
  166. ###
  167. ### 11/29/93
  168. ###
  169. type1.library:
  170.  
  171.  Miscellaneous eradication of compiler warnings.
  172.  
  173.  Marked some more variables as 'const'.
  174.  
  175.  More reworking of the makefiles.
  176.  
  177.  
  178. ###
  179. ### 12/5/93
  180. ###
  181. type1.library:
  182.  
  183.  Fixed the linker problem (__XCEXIT).  The problem was that the math libraries
  184.  were linking in the SAS default _CXFERR, which then brought in a variety of
  185.  objects involving exit handling...  The solution was simply to define my own
  186.  _CXFERR (in type1lib.c).
  187.  
  188.  Changed the includes a bit.  For example, instead of doing:
  189.    #include <pragmas/exec_lib.h>
  190.    extern struct ExecBase *SysBase;
  191.    #include <clib/exec_protos.h>,
  192.  I now do a much nicer,
  193.    #include <proto/exec.h>
  194.  
  195.  
  196. ###
  197. ### 1/10/94
  198. ###
  199. type1.library:
  200.  
  201.  Removed the OtagObtainInfo and OtagReleaseInfo entry points.  I can't remember
  202.  why on earth I ever put them in, but they're gone now.
  203.  
  204. T1Manager:
  205.  
  206.  Instead of calling OtagObtainInfo, now calls ObtainInfo
  207.  
  208.  
  209. ###
  210. ### 1/14/94
  211. ###
  212. T1Manager:
  213.  
  214.  Changed the way I display the preview image.  Instead of blitting directly
  215.  into the windows's rastport onto the preview box, I am now using the
  216.  myimagegclass BOOPSI image class that I got off of AmiNet.  First I
  217.  render into a bitmap that I allocate which is the size of the gadget,
  218.  and then I use a set() command to display that gadget.  The drawback is
  219.  that you can't see each character being rendered, but rather see the
  220.  whole thing at once when it is finished.  That's okay, though, since it
  221.  still feels fast (to me, at least).
  222.  
  223.  
  224. ###
  225. ### 3/27/94
  226. ###
  227. T1Manager:
  228.  
  229.  Reorganized the code for t1manager.c, making it much cleaner.  Also,
  230.  I am now saving and loading the contents of the first cycle gadget (that
  231.  selects the part of the fonts: assign).  Couldn't find an easy and clean
  232.  way to save the default font source directory for installing fonts,
  233.  though.
  234.  
  235.  Fixed many bugs in the rendering routine, by setting the
  236.  drawing mode to COMPLEMENT (xor), and by inserting WaitBlit()'s.
  237.  Now, what you see is really what type1.library is returning.
  238.  
  239.  
  240. ###
  241. ### 5/11/94
  242. ###
  243. type1.library:
  244.  
  245.  Started incorporating changes to the base code (from X11R5 contrib)
  246.  from HP (HPXLFD_enhancements) and changes in the X11R6 rasterizer.
  247.  One of the benefits is that rotation and shearing now work.
  248.  
  249.  
  250. ###
  251. ### 6/20/94
  252. ###
  253. type1.library:
  254.  
  255.  There was a problem (bug introduced) with the previous attempt to
  256.  incorporate HP and X11R6 patches - so I started over again from my
  257.  previous beta (with only the R6 patches).  Things now work again -
  258.  and I can easily transform characters through a matrix, etc.  Things
  259.  are set up so that I can soon try rotation, shearing, etc.
  260.  
  261.  I have eliminated the majority of SAS's warnings (function prototypes,
  262.  const pointers and non-const pointers, etc).  There are only a few left
  263.  (uninitialized auto variables, and xobject != struct xobject != path, etc.
  264.  
  265.  There is an abort function in type1interface.c called FatalError().  This
  266.  is currently a stub (which actually just RETURNS!) - but it should call
  267.  Alert(), or something - and probably just hang forever after that (returning
  268.  would be dangerous).
  269.  
  270.  Code reorganization.
  271.  
  272.  
  273. ###
  274. ### 6/21/94
  275. ###
  276. type1.library:
  277.  
  278.  Rotation and Shearing now work.
  279.  
  280.  
  281. ###
  282. ### 6/24/94
  283. ###
  284. T1Manager:
  285.  
  286.  Now t1manager returns error messages for common preview/installation errors.
  287.  
  288.  
  289. ###
  290. ### 7/1/94 (After recovering from hard drive problems...)
  291. ###
  292. T1Manager:
  293.  
  294.  The V39 dependency should be gone - things should now work on V37 again.
  295.  Thanks go to Gregory Block for sending me some code I was too lazy to bother
  296.  with...  He sent me V37 AllocBitMap and FreeBitMap code.
  297.  
  298.  
  299. ###
  300. ### 1/7/95
  301. ###
  302. T1Manager:
  303.  
  304.  T1manager now asks type1.library for the internal name of the font (via
  305.  OT_Spec3), and uses that instead of the filename.  Thus, installing
  306.  COUR.pfb will create a font called Courier instead of COUR.
  307.  
  308.  I fixed the silly bug where installing into a directory with a '.' in
  309.  the name caused problems (like System3.1:fonts, etc.).  Thanks to
  310.  Greg Block for reporting this (many times).  I'd actually fixed this
  311.  before, but lost my fix when I restored from a backup after the hard
  312.  drive problems.  This whole business was obsoleted by the previous
  313.  change, anyhow.
  314.  
  315. type1.library
  316.  
  317.  Now I create both .030 and .000 versions
  318.  
  319.  I modified some routines in token.c and scanfont.c so that literal
  320.  names (like the FontName) get NULL-terminated.  This involved putting
  321.  a save_ch_no_inc() in the LITERAL_NAME() function, along with
  322.  modifying FindDictValue(): I allocate an additional byte of VM so
  323.  this zero doesn't get overwritten (only for OBJ_NAME).
  324.  
  325.  I've removed the majority of the remaining SAS warnings, and also reduced
  326.  the size of the library a couple hundred bytes.
  327.  
  328. ###
  329. ### 1/9/95
  330. ###
  331. T1Manager:
  332.  
  333.  Greg Block reported enforcer hits in T1manager on removing a font.
  334.  Right he was.  The quick and not too dirty solution was to not
  335.  bother with trying to delete possible bitmap files inside the
  336.  bitmap directory.  If there aren't any bitmap files, the directory
  337.  will successfully delete, and if there are, then it won't, but
  338.  that won't affect the success of the removal.  Basically, I don't
  339.  make bitmaps, and so I'm not worried about it right now.
  340.  
  341.